// 从 electron 模块导入 contextBridge
import { contextBridge } from 'electron'
// 从 @electron-toolkit/preload 导入 electronAPI
import { electronAPI } from '@electron-toolkit/preload'

// 为渲染进程自定义的 API
const api = {}

// 仅当启用上下文隔离时，使用 `contextBridge` API 向渲染进程暴露 Electron API，
// 否则，直接添加到 DOM 全局对象中。
if (process.contextIsolated) {
  try {
    // 向渲染进程的全局对象 window 中暴露 electronAPI
    contextBridge.exposeInMainWorld('electron', electronAPI)
    // 向渲染进程的全局对象 window 中暴露自定义 API
    contextBridge.exposeInMainWorld('api', api)
  } catch (error) {
    // 捕获暴露 API 时可能出现的错误并打印到控制台
    console.error(error)
  }
} else {
  // @ts-ignore (在 dts 文件中定义)
  // 直接在全局对象 window 上添加 electronAPI
  window.electron = electronAPI
  // @ts-ignore (在 dts 文件中定义)
  // 直接在全局对象 window 上添加自定义 API
  window.api = api
}
